Method and system for providing geographically targeted information and advertising

ABSTRACT

A system and method of providing information based on the location of the target. The system is ideal for use with voice based technology, and uses street segments to allow users to identify their location by cross street. The system can target advertisements to users based on the location of the user, a destination location related to the information requested by the user and/or the route to be taken by the user to reach such destination location.

NOTICE REGARDING COPYRIGHTED MATERIAL

[0001] A portion of the disclosure of this patent document containsmaterial which is subject to copyright protection The copyright ownerhas no objection to the facsimile reproduction by anyone of the patentdocument or the patent disclosure as it appears in the public PatentOffice file or records but otherwise reserves all copyright rightswhatsoever.

TECHNICAL FIELD

[0002] This invention relates to methods of requesting and targetinginformation based on the location of the requestor, and morespecifically using natural language to allow such requestor to identifytheir location.

BACKGROUND

[0003] There are advantages in being able to provide phone usersinformation based on their location. If the location of the phone useris known, then information about the nearest product or service can beprovided (for example the cheapest gas station within a certaindistance). Furthermore, advertisements can be targeted with precision,i.e. based on where the recipient of the advertisement is likely to bein the near future.

[0004] There are a number of systems in place for determining thelocation of a cellular phone user. For example the company known asCell-Loc, Inc. provides a service to identify the location of cellularphone users. This system uses of triangulation, i.e. three receiversmust receive the signal from the cellular phone in order to determinethe location of the phone. This requires that three such receivers be inrange of the telephone, which in turn has a certain expense.Furthermore, such a system will only work on phones that function astransmitters, i.e. cellular phones, and will not work with other phones.Another location based system is the GPS systems to locate the user.This requires satellites and the enormous cost inherent in providingsame.

[0005] Systems which store geographic information commonly in use todaystore and index information by postal code or geographic longitude orlatitude coordinates. Geographic Information Systems (GIS) providespatial processing functionalities and are based on the minimal unit oflongitude and latitude coordinates. Such systems build lines andpolygons and perform computations and transformation on longitude andlatitude coordinates. The user interface for such systems is generally apersonal computer. Such systems are commonly used for thematic mapping,radio wave propagation studies, and transport infrastructure design.

SUMMARY OF THE INVENTION

[0006] A method of providing information to an information requestor isprovided comprising the steps of: (a) the information requestercontacting an information source and making a request for information;(b) said information source obtaining a location reference from saidrequester; and (c) said information source providing information to saidrequester based on said location reference.

[0007] The location reference may be obtained from said requestor bysaid requestor providing a voice input and in step (c) an advertisementmay be provided to said information requestor. The requestor may contactsaid information source and be provided said information via phone andthe location reference may be determined by said requestor identifying afirst cross street and a second cross street. The location reference maybe determined using voice information provided by said requester.

[0008] A system for providing information to an information requestor isprovided comprising, an information source including means for receivingan information request; means for obtaining a location reference fromsaid requester; and means for providing information to said requestorbased on said location reference. The means for obtaining a locationreference from said requester may comprise means for obtaining a firstcross street and a second cross street from said requestor; and meansfor determining a location reference from said cross streets. The systemmay further comprise means for providing an advertisement to saidrequestor based on said location reference.

[0009] A method of obtaining information from a user is provided,comprising the steps of: (a) said user establishing voice communicationwith a database; (b) said user associating information with a locationreference using said voice communication; and (c) said database storingsaid information in association with said location reference.

[0010] A method of accessing business information in a personalinformation manager is provided, comprising the steps of: (a) a userestablishing a voice communications link with said personal informationmanager; and (b) said user accessing a database associated with saidpersonal information manager using natural language.

[0011] A method of routing a requestor by a sponsor is provided,comprising the steps of (a) said requestor contacting an informationsource to obtain a route; (b) said information source selecting a routethat passes by or through an establishment selected by said sponsor; and(c) providing said route to said requestor. Before step (c), theinformation source may provide an advertisement to said requestor.

BRIEF DESCRIPTION OF FIGURES

[0012] Further objects, features and advantages of the present inventionwill become more readily apparent to those skilled in the art from thefollowing description of the invention when taken in conjunction withthe accompanying drawings, in which:

[0013]FIG. 1 is a map of an area showing the road structure and certainpoints of interest;

[0014]FIG. 2 is a graphical representation thereof showing the streetsegments;

[0015]FIG. 3 is a graphical representation thereof showing the streetsegments with their unique identifiers;

[0016]FIG. 4 is a graphical representation thereof showing the types ofsegments as highway, main or secondary roads;

[0017]FIG. 5 is a graphical representation thereof showing a streetsegment and the endpoints thereof;

[0018]FIG. 6 is a graphical representation thereof showing theintersection point of two street segments;

[0019]FIGS. 7, 8 and 9 are graphical representations thereof showinggroups of street segments;

[0020]FIG. 10 is a graphical representation thereof showing a group ofstreet segments associated with an intersection;

[0021]FIG. 11 is a graphical representation thereof showing a group ofstreet segments associated with a point of interest;

[0022]FIGS. 12 and 13 are graphical representations thereof showing agroup of street segments associated with a municipalities;

[0023]FIG. 14 is a graphical representation thereof showing two pointsof interest;

[0024]FIG. 15 is a graphical representation thereof showing a segmentassociated with a point of interest;

[0025]FIG. 16 is a graphical representation thereof showing a group ofsegments selected by an advertiser based at the point of interest;

[0026]FIGS. 17 and 18 are graphical representations showing the segmentswithin “one block of Russell Ave.” and “within two blocks of Russell andJohnson”, respectively;

[0027]FIG. 19 is a graphical representation of a proximity radiuscentered at Russell and Fir;

[0028]FIG. 20 is a graphical representation of beacon specifications;

[0029]FIG. 21 is a flow chart showing the processing of a transactionfrom information in a PIM;

[0030]FIG. 22 is a flow chart showing the processing of a request drivenbeacon; and

[0031]FIG. 23 is a flow chart showing the processing of an event drivenbeacon.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

[0032] The system and method of the invention allows for the storage andretrieval of information in a geographic context. A component of thesystem and method is that of locating objects and information in ageographic context using voice recognition. Voice recognition softwareis widely known in the art and available under many brand names. Thesystem and method according to the invention employ grammars to enableusers of the system to use natural language speaking patterns ratherthan precise language to describe groups of segments (as furtherdescribed below).

[0033] As used herein an information source means a database with meansto communicate with a requester, preferably by voice, although othercommunication means are also applicable.

[0034] Street Segments

[0035] The method and system according to the invention uses streetsegments as a basic geographic unit. A segment generally represents aportion or whole of a street where each end of the segment eitherterminates or intersects with one or more other segments. Street segmentdata is available from several vendors and is commonly called a “roadnetwork” or “street data set”. In the United States, the US CensusBureau publishes a data set referred to as the TIGER (TopologicallyIntegrated Geographic Encoding and Reference System) data set.Geographic Data Technology is another company in the United States whichprovides segment data. In Canada, Desktop Mapping Inc. vends a productcalled “CanMAP Street Files” with Canadian data. Similar data isavailable for many countries throughout the world.

[0036] The system described herein stores and processes information bycreating relationships to portions of streets, generally representativeof streets blocks, called segments. Segments are grouped together intogroups to represent common, user defined and other purposeful entities,(also called spatial constructs). The system fundamentally operates onthe notion of segment and groups and the representations and purposes ofsaid groups. FIGS. 1 through 19 graphically show how segments are formedand placed into groups. In particular FIGS. 1 and 2 show how a mapshowing part of the communities of Surrey and White Rock can beconverted into street segments.

[0037] This architecture further supports different functionalities,particularly in that it is designed to interpret and consider geographicinformation from a requestor with a “real physical world” and “user”point of view; i.e.: a user on a street or physical place. It isdesigned to support and facilitate, but is not limited to, interfacesfor mobile environments, such as Personal Digital Assistants (PDAs) orcellular phones. The system allows users to query the whereabouts ofobjects in a geographic setting and to query information about, throughor otherwise associated with those objects.

[0038] A location referencing system is a system in which, given a namedarea, one or more street names, a landmark, or a proximity, or acombination of these, the system returns the geographic longitude andlatitude of the described location or a collection of referencesrepresenting street blocks within the given area. The database used by apreferred embodiment of such a location referencing system is describedbelow. The process used may be implemented using a standard relationaldatabase management system and the terms: table; keys; SQL; and queryare terms in the art to those with a working knowledge of such databasemanagement systems.

[0039] The database used for storing segment and group information canbe implemented by one skilled in the art. A preferred embodiment of adatabase for street segments follows:

[0040] (1) geocnt (Geographic Country)

[0041] A table representing countries should be created. This is notessential to the system but is preferable for completeness of design.

[0042] The information to be stored for each country is preferably thecountry's name and the ISO 3166.1, 3166.2, and 3166.3 codes as appliedby the International Standards Organization group. For example, a tablenamed georteseg with the following fields can be created so that the cdefields (cdes are unique codes for identification purposes) are uniqueamong the rows. All cde values must be the same length (i.e. padded withzero's if necessary). For example: FIELD DESCRIPTION EXAMPLE cde ISO3166.3 code 840 nme ISO 3166. United States iso3166_1 ISO 3166.1 code USiso3166_2 ISO 3166.2 code USA iso3166_3 ISO 3166.3 code 840

[0043] (2) geodis (Geographic District)

[0044] A geodis is an abstraction of a geographic area akin to a state,province or territory. For example, the state of Oregon should be ageodis object. A geodis is owned by a country (or geocnt) and a geocntcan and usually does own multiple geodis objects (as countries havemultiple states/provinces/territories). Therefore a one to manyrelationship exists between geocnt and geodis. geodis objects also haveunique “cde” values which uniquely identify them among all other geodisobjects—even across countries. The cde value preferably begins with thegeodis's owning country's cde value. For example, if “840” is the cdevalue for the United States, then all geodis objects owned by the UnitedStates would have a cde value beginning with “840”. This technique isreferred to as embedded owner id (or cde) propagation and is usedextensively in the system.

[0045] The portion of the cde value after the geocnt cde is called alocal cde part. This part of the cde value is unique among all othergeodis objects owned by the same geocnt. Hence, if Oregon's local cdepart is “53”, then there would be no other geodis objects with a localcde part of “53”. Note also the entire cde value for the state would be“84053”. The United States government has defined two digit codes thatuniquely represent each state in the union. This code is called a “FIPScode” and is the value which should be used for the local cde part of ageodis cde (FIPS stands for Federal Information Procession Standard).The Canadian Government has also defined two digit codes which uniquelyrepresent each province and territory, called the “Standard GeographicClassification Codes for Provinces”.

[0046] A geodis table may have the following fields. The cde is uniqueand is used as a primary key: FIELD DESCRIPTION EXAMPLE cde as describedabove 84053 nme ISO 3166. Washington State abr ISO 3166.1 code WAgeodistyp ISO 3166.2 code state geocntcde ISO 3166.3 code 840

[0047] (3) georteseg (Geographic Route Segment)

[0048] A georteseg is a term that applies to a single street segment andis the basic unit by which the system works. Streets are naturallydivided into “blocks” which are treated as street segments. Each end ofa georteseg has a longitude and latitude representing the starting pointand a longitude and latitude representing the ending point. These pointscreate a line which may not reflect the shape of the street but doreflect either where the end of the road intersects with another orcomes to an end.

[0049] The information to be stored for each georteseg includes a cdewhich uniquely identifies the georteseg among all other geortesegs; thename of the street segment (e.g.: Main); the type (e.g.: St or Ave); theprefixing directional (e.g.: N for N Main St) and the suffix directional(e.g.: SW for Main St SW); the longitude and latitude pairs for thestarting and ending points of the segment; the address range startingnumber and ending numbers for both the left and right sides of thesegment; and, the 5 digit zip codes or the Canadian postal FSA code forboth the left and right side of the streets.

[0050] The base information for geortesegs can be obtained from eitherthe US Government Census Bureau or the Canadian Census Bureau orauthorized affiliates. Other sources exist as well. Of the vendors thatexist, most provide data at this segment or block level although variouscomputer software applications may be required to extract theinformation required.

[0051] A preferred embodiment of the a georteseg record follows:Georteseg FIELD DESCRIPTION cde an id uniquely identifying the geortesegnme the local legal street name typ standard abbreviation of the streettype dirpre directional prefix (eg: N) dirsuf directional suffix (eg:SW) adriftbgn address range beginning on left side adriftend addressrange ending on left side adrrhtbgn address range beginning on rightside adrrhtend address range ending on right side pstcdeprelft US 5digit zip code or Canadian Postal FSA code for left side pstcdesuflft US5 digit zip code or Canadian Postal FSA code for right side geoplccdelft10 digit geoplc cde for left side geoplccderht 10 digit geoplc cde forright side geodiscdelft  5 digit geodis cde for left side geodiscderht 5 digit geodis cde for right side geolngbgn geographic longitude ofbeginning point geolatbgn geographic latitude of beginning pointgeolngend geographic longitude of ending point geolatend geographiclatitude of ending point cls road class code

[0052] Examples of segments with their cde codes are seen in FIG. 3.Fields may also be included that are useful to routing logistics, (suchas segment speed limit and turn restrictions), or to enhancefunctionality for related portions of the system as well. Another usefulstreet segment field relates to the type of street, secondary, major orhighway, as seen in FIG. 4.

[0053] Each end of a segment either intersects with another segment orterminates. Segment intersections can be determined by evaluating whichsegment have common longitude and latitude coordinates between theirbeginning and ending points.

[0054] The street segments in a database for use with the invention mayhave to be harmonized or homogonized into a common form, or record type.The database table should contain the required fields for the segmentsand be populated with the table field values from the various sources.Street segments should be grouped (as described above) by state orprovince for best performance but this is not necessary with sufficienthigh end processing power on the computer platform being used to operatethe system. The database table which houses the street segments isreferred to in this document as “georteseg” (geographic route segment).

[0055] Longitude and latitude coordinates for a street segment can bebased on a variety of datums. It is important that all street segmentseither share the same datum or use a datum identifier that is stored andrelated to the segments. Converting longitude and latitude coordinatesto a common datum prior to storing the segments is the preferred processas subsequent transformations are not required which improvesperformance.

[0056] Groups

[0057] The system, according to the invention, uses the concept ofgrouping the segments into collections of segments representing variousentities or purposes, called segment groups that represent variousgeographical entities or purposes. Examples of prominent groups mayinclude those for spatial or geographical referencing and theapplication of business logic. The group names should follow a veryprecise naming convention in order to facilitate the organization andrecognition of their attributes and allow the flexible encapsulation ofgroup attributes in the name. Proper naming makes the overall systemmore adaptable as tables will not need to be structurally changed whenenhancements or modifications are made only a new naming convention isrequired.

[0058] The following describes an embodiment of group organization,identification and structure. Those skilled in the art will be awarethat there are many variations on such organization, naming andstructure that may be employed to carry out the method and systemaccording to the invention.

[0059] An example of a group type is place groups (also referred to asgeoplc). Place groups are groups that encompass places. Places can beany abstraction of the term: legal, unincorporated place, common orcolloquial names (e.g. city areas), counties, city districts, entirestates or provinces. Place can include personal definitions (e.g. ausers area of regular travel), or business definitions (e.g. the areafrom which a business draws customers). The place groups define streetsegments (herein referred to as georteseg items) into collections. Thename of the group encapsulates some information about the group.Examples of place groups are seen in FIG. 11 (the street segments ssurrounding the Peace Arch District Hospital) and FIGS. 12 and 13 (thestreet segments in White Rock and Surrey, respectively).

[0060] Place groups are preferably created for common place names ineach state or province. An example of a naming convention could be thefollowing:

[0061] geoplc_common_cccdd_pppppppppp

[0062] In this example, ccc represents the 3 digit ISO 3166.3 countrycode (eg: 840 for the US, 124 for Canada); dd represents the US StateFIPS codes for the State or the Canadian Standard GeographicClassification Codes for Provinces as established by the CanadianGovernment (eg: 53 is the US FIPS code for Washington State, 59 is theCanadian Standard Geographic Classification Code for the province ofBritish Columbia in Canada); and pppppppppp is unique serial numberwhich uniquely identifies the group among all similarly named groups.

[0063] Groups also have a type. For example, all groups representingcommon places have a common group type. In the above example, it is“geoplc_common”. For each group, another table stores the data for thegroup (herein referred to as grpdat).

[0064] Grpdat is populated with all of the georteseg segment idspertinent to that group. Grpdat should contain the following fields inthe table:

[0065] (a) a unique serial id;

[0066] (b) the group description code; and

[0067] (c) at least one georteseg segment id.

[0068] Each group should populate the grpdat table with as many segmentsas appropriate for that group.

[0069] Another group type is known as a street segment groups (orgeortesegs). These groups represent collections of street segments byvarious parts of the street name. These follow the same group namingconventions as the place groups except that the “geoplc_common” field isexchanged for “georteseg_common”. These georteseg groups are organizedaccording to the following rule: for each state or province the distinctstreet segment names are selected which exist in that state or province;i.e. a list is derived of all of the names of streets in the state orprovince.

[0070] For each distinct name, groups should be created with variationsshould they exist. Some of these variations may include:

[0071] (a) Street Type—a list is derived of all of the types of a givenstreet such as “Georgia St.”, “Georgia Dr.”, “Georgia Ave.”, etc. Foreach of these groups a group is created for the top level group (such as“Georgia”); and

[0072] (b) Street Directional (whether appearing as prefix or postfixnotation—Georgia St W or East Georgia) a group is created.

[0073] Groups provide flexibility for the system and method. Placegroups provide for arbitrary named places consisting of street segments.Street segment groups provide for various forms of interpretation andresolution. For example, if Georgia Street has 4 segments (i.e. 4blocks) which are called West Georgia and 4 segments which are calledEast Georgia, the “Georgia” group would consist of all 8 segments andeach of the respective directional groups consist of their respective 4segments. Another useful type of group is that of street segmentsmeeting at an intersection.

[0074] In essence and practice, the more specific the inputs the grouphas the more accurately the group can be searched. The groups facilitatemore efficient lookup. For example, if there was a Georgia Avenue and aGeorgia Street, the “Georgia” group will reference all of the segmentsof both the street and the avenue. If the street and avenue both haveeast and west components then the Georgia East group contains only thesegments from both the street and avenue which are the east segments.

[0075] The system uses group segments to representing various entities,commonalities, or purposes. Examples of prominent groups may include forspatial or geographic referencing and/or the application of businesslogic. Groups may also reflect hierarchical relationship representingvarious entity relationships, or purpose relationships. Groups providethe benefit of enhancing table search performance. As a large number ofsegments are generally stored in the segment table, searches can becometime and resource intensive from a system operation perspective. Groupscan reduce the time necessary.

[0076] Depending on purpose of the group which could dictate differentfunctionalities, certain group attributes may be more efficiently storedin the segment table and/or group tables. Examples of such propertiesinclude the city and/or province identifiers of segments. Groups alsoprovide flexibility. In the place form, they provide for arbitrary namedplaces consisting of street segments or other groups. In name form, theyprovide for various form of interpretation and resolution. For exampleif Thrift Avenue consists of seven segments identified as West ThriftAvenue and five segments identified as East Thrift Avenue, a grouprepresenting Thrift Avenue would refer to all twelve blocks of ThriftAvenue, another group would refer to the seven blocks of West ThriftAvenue, and a third group would refer to the five blocks of East ThriftAvenue. By specifying the segment name, segment directional prefix,segment directional suffix and segment type as properties of the groups,one can quickly find all of the segments which comprise Thrift Avenue,West Thrift Avenue and East Thrift Avenue. By searching group propertiesrather than the segments, in this example three elements were consideredinstead of 12, which provides improved performance.

[0077] One of the purposes of groups is to be able to, given a label, beable to efficiently obtain a list of the segments which apply to thelabel. Another consideration when creating groups is to allow cascadingof group hierarchies from groups to groups contained within largergroups. One such example would be groups which point to sub groups suchas countries groups which relate to state and or province groups whichin turn relate to city groups.

[0078] Groups are also formed to take advantage of natural languagepatterns of requesters. Furthermore, group constructs facilitatesearching by paths, radius or blocks. Furthermore the system can“complete” groups by adding segments where logically necessary. Forexample, in FIG. 18, a group is identified that represents “two blocksfrom the intersection of Russell and Johnson”. Segment X intersects withtwo segments that form part of such group, but is itself, not included.The system can check for such “lost segments” by checking for segmentsthat intersect at both their starting and ending points with the groups,and include such segments in the group.

[0079] Grammars

[0080] The process describes building voice recognition grammars and amethod for converting utterances spoken by a user into locationreferences. Location references represents groups. Groups represent subsegment groups or segments. Segment groups reflecting various segmentconstructs and related segments are defined. Prominent groups includecities, neighbourhoods, landmarks, and streets. Each group has a type,for example, city, neighbourhood, landmark, and street and optionallyrelationships to other groups.

[0081] Groups representing collections of segments by name, and optionalneighbourhood, city and state or province, reference, are created.Segment class, e.g. secondary or primary or highway or other class, canbe identified as an attribute of the group as well. In addition,attributes reflecting voice recognition instructions or text-to-speechor other presentation instructions can be identified with the group.This is particularly useful for handling special or multiplepronunciations and adjusting text-to-speech representations foraccuracy.

[0082] For example, as seen in FIGS. 7, 8 and 9, three groups for ThriftAvenue would be created each with applicable segments representing thenotions of “Thrift Avenue West”, “Thrift Avenue” and “Thrift AvenueEast”. The Thrift Avenue West group would have the name property of thegroup as “Thrift”, the directional prefix as nothing, the directionalsuffix as “west” and the type as “Avenue” and be identified as being acollection of segments representing a street. Optionally, an ownerattribute could indicate it is owned by the city of White Rock. Thesegments referenced in the group would be 10022, 10023, 10024, 10025,10026, 10027, and 10028 given that Johnston Rd. divides Thrift into Eastand West portions. The “Thrift Avenue East” group would have the nameproperty of the group as “Thrift”, the directional prefix as nothing,the directional suffix as “east” and the type as “Avenue” and beidentified as being a collection of segments representing a street.Optionally, an owner attribute could indicate it is owned by the city ofWhite Rock. The segments referenced in the group would be 10029, 10029A,10030, 10031, 10032.

[0083] The “Thrift Avenue” group would have the name property of thegroup as “Thrift”, the directional prefixes as nothing and the type as“Avenue” and be identified as being a collection of segmentsrepresenting a street. Optionally, an owner attribute could indicate itis owned by the city of White Rock. The segments referenced in the groupwould be 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10029A,10030, 10031, 10032.

[0084] Searching any of these groups with the name input as “Thrift”yields all groups and therefore all twelve segments represented by thegroups. Searching any of these groups with the name input of “WestThrift” where “West” is in either the directional prefix or directionsuffix and the name is “Thrift” will yield the single group with thename Thrift and the directional suffix as “West” representing sevensegments. When applied and in practice, searching groups in this mannerresolves what are referred to as common or non-legal expressions andreduces the number of items being search; instead of searching allsegments in the table, the search is against fewer groups withattributes representing those segments. A group represents a form ofsegment based on criteria.

[0085] Grammars represent programming for use with voice recognitionsystems. That is to say voice recognition systems use grammars to definewhat spoken words or phrases, called utterances, are recognized.Grammars are preferably constructed to support natural languageexpressions. For example, “Thrift and Johnston”, “Johnston and Thrift”,“Thrift at Johnston”, “West Thrift”, “Thrift West”, “West ThriftAvenue”, “Thrift Avenue West”, “Thrift between Martin and Johnston”should all be understood by the grammar. Grammars are constructed tosupport numbered streets in the form of digits, (i.e.: one-seven) aswell as cardinal and ordinal forms (i.e.: 17 and 17th) reflecting thethree ways numbered street names can be spoken (one seven; seventeen;seventeenth).

[0086] The grammar may apply street/road class and assign probabilitiesto utterances which is preferred as this increases voice recognitionaccuracy in most situations. The reasoning is that more prominentstreets have a higher likelihood of being named compared to similarsounding names of representing a less busy street class/type.

[0087] Grammars are constructed such that the placement of certainphrases or words assist interpretation. These words include but are notlimited to “at”, “and”, “near”, “between”, “within”, “of”, “the”, “on”.The grammars are optionally further constructed to support object names,distances in units for proximity, neighbourhood names, city names andstate/province names.

[0088] The grammar is preferably constructed to assign values to slotsand return names and values for slots where the values are portions ofthe utterance. For each street to be recognized, the following slots areused: [direction prefix n], [name n], [direction suffix n], [type n]where n is the instance number of a street utterance. Additional slotsinclude, but are not limited to, [object] and [object param n],[proximity unit], [proximity metrix].

[0089] In general practice, when the user is not supplying streetsspecifying a user path or route, the following rules, while not strict,can be used: If 1 [name n] slot is returned, the user has indicated asingle street. If 2 [name n] slots are returned, the user has indicatedan intersection. If 3 [name n] slots are returned, the user hasindicated a portion of a street isolated by two cross streets. If theuser has indicated 4 [name n] slots the user has indicated either 2intersections or 4 streets which can be investigated to determine if anarea enclosed by the said streets exists.

[0090] Slot values are matched with group attributes. The more slotvalues available (expressed by the user) the less ambiguous thereference is. For example, if only a [name n] slot is available, onlythe name attributes of the street groups can be searched. If a[direction prefix] or [direction suffix] was provided in addition to a[name], then those group attributes can be search as well. It isimportant to note that when constructing grammars if only onedirectional is specified in the group attributes, that directional cantake place in spoken language prefix or suffix form. For example, “WestThrift” and “Thrift West” are valid expressions. Thus, when searchinggroups with directional attributes, if a single directional wassupplied, it should be searched for in both the prefix and suffixlocations regardless of whether it appears as a prefix or suffix formfrom the grammar slot. This does not apply when no directionals areprovided or where two directionals are provided. In the case of twodirectionals, natural language expression does not support transposingof the directions; i.e. “North 1st Avenue West” cannot be properlyexpressed as “West 1st Avenue North”.

[0091] Points of Interest

[0092] The system allows users to locate and/or become aware of and/orinteract with content and/or objects or there properties of same, hereincalled Points of Interest (“POI”), based on a combination locationcriteria, herein called Location References (“LR”), and optionally otherattributes of the object. Points of Interest are “bound” to streetsegments, i.e. Points of Interest have a direct relationship to specificstreet segments or groups representing collections of street segments.Examples of Points of Interest include restaurants, movie theatres, gasstations, landmarks, etc. The Points of Interest for a particularinformation request will depend on the nature of the request and theLocation Reference.

[0093] The system supports a variety of Location DeterminationTechnologies (LDT) to obtain Location References. Location Referencesmay express points (such as a geographic longitude and latitudecoordinates), street names, intersections, landmarks, bridges, tunnelsand other features, areas, towns, townships, and places.

[0094] The system defines the location of an object in three key forms:(1) by association with a particular segment id; (2) a valuerepresenting a percentage of the segment where the address of the objectis located relative to the address range, and (3) the longitude andlatitude of the object. Additionally, the side of the street may be usedas well. To determine the correct segment, various attributes of theinput location are compared with attributes of segments.

[0095] The system defines the location of an object fundamentally byassociating an object with segment ids and/or a geographic longitude andlatitude coordinate. Any object which has a physical real-worldrelationship to one or more segments, such as a business location, isalways defined in terms of the relationship with one or more segments. Asegment relationship in minimally expressed by segment id, but mayinclude a value representing a percentage of the segment where theaddress of the object is located relative to the address range.Additionally, the side of the street or surrounding segments may be usedas well.

[0096] For fixed objects with relationship to segments, objects have anaddress segment which is the segment which is representative of bearingthe address of the object. To determine the address segment, the civicaddress is compared against segments with matching segment name, segmentdirectional prefix, segment directional suffix, segment type, addressleft begin, address left end, address right being, address right end,post code. If successful, a signal segment assigned to a place groupwill result.

[0097] An important process which applies throughout the system,especially in voice, is transposing directions to reflect differentforms of location expression. For example: West Georgia Street, where[dir]=west, Georgia=[nme], and [typ]=Street can be expressed as [dir][nme] [type] (West Georgia Street) or [dir] [name] (West Georgia) or[nme] [typ] [dir] (Georgia Street West). Other combinations of [typ] and[dir] exist and are evaluated.

[0098] Once an address segment has been calculated, a value representinga percentage of the segment where the address of the object is locatedrelative to the address range on the proper side of the street iscalculated. For example, if the segment reflects the address range of 1to 99 on the left, and 2 to 98 on the right, the address of 50 would bemathematically 50% from the end of the segment and on the right side.Once a percentage of the overall distance of the segment has beenachieved, an longitude and latitude position can be determined. Accuracycan improve if segment shape tables are referred to in the process butthis is not required.

[0099] Location Referencing

[0100] A Location References is information used by the system to obtaina geographical area related to the requestor's location or to theinformation provided to the requester. It includes information that maybe used by itself or in conjunction with other information and/orprocesses to determine a location such as postal codes and TelephoneCalling Line-ID. Typically, through the system, Location References areprocessed to determine a location by which street segments the locationrepresents.

[0101] Location Determination Technologies are processes that determineor otherwise indicate the location, to varying degrees of resolution andaccuracy, the location of an entity or area. Location DeterminationTechnologies are generally divided into two groups: automatic (AutomaticLocation Identification or ALI) and non-automatic. Automatic LocationIdentification (ALI) technologies provide location determination withoutthe need for manual intervention in the process. Common examples ofknown ALI technologies include Global Positioning Systems (GPS) devices,cellular network cell identification (Cell ID) or cell of origin (COO),and wireless packet computation techniques such as Time Difference onArrival (TDOA); or Angle of Arrival (AOA). These forms of ALI generallyoutput geographic longitude and latitude coordinates. ALI can also befacilitated by common information entities. Telephone Calling Line ID(CLID; Caller-ID) and Automatic Number Identification (ANI) are examplesof information that can and are often used to automatically determinelocation. Some forms of ALI or ALI supporting information servicesrequire and/or offer the ability for a user to control the relaying oflocation information or information that can be used to determinelocations. An example of such a control is Caller-ID Blocking, a serviceprovided by some telephone companies that allows the subscriber to“block” their Caller-ID from being provided to the callee.

[0102] The system and method according to the invention generally usesnon-automatic Location Determination Technologies, particularly havingthe requestor identify a location via voice.

EXAMPLE #1 Determining Caller Location

[0103] In one embodiment of the system and method geographicalinformation is obtained as follows:

[0104] 1. A purpose of the system and method is to provide information,products or services to the requestor from a geographical perspectivebased on the requestor vocally providing either place names (city,state, landmark, etc) and/or street names.

[0105] 2. When a call is received on the platform (the call handlingdevice), for example by phone (land line or cellular), internet, orhand-held computer (PDA), the caller id and called number information issaved (named callerid and calledid respectively in this example).

[0106] 3. Optionally, a lookup is performed on the database of memberseligible to use the system to determine if the caller id matches that ofa member. If so, member preferences are loaded which may include defaultservices, and a province and city.

[0107] 4. If a member profile is not obtained then a database lookuptakes place attempting to identify the location of the caller by areacode and prefix. If a confident match is found these become the defaultcity and province or state.

[0108] 5. The city and state may be solicited from the caller dependingon the confidence of the information from the database lookups. Forexample, if the city and state cannot be identified, then the caller isasked by the system “Say the name of the city and state you'reinterested in” if the area code is US. If the area code is Canadian thenthe caller is asked “Say the name of the city and province you'reinterested in”. If a database issue (i.e. an error) precluded any kindof identification, the system asks “Say the name of a city and state andprovince.” If only the default state or province is determined, thesystem asks “Say the name of a city your interested in”.

[0109] 6. The system then asks “What would you like to find?”. Thesystem uses a grammar that listens for keywords from the requester thatare added to the system on an ongoing basis. For example, descriptiveterms like “gas stations” or trademarks like “Starbucks” are examples ofkeywords that may be listened for. These keywords are internallyreferenced as “objects” and are represented in the grammar as the “obj”slot and are used to determine the Points of Interest. Other objects mayrefer the caller to outside parties, e.g. taxis or other serviceproviders in the area of interest.

[0110] 7. The system continues on to ask the requestor the name of astreet or intersection. The grammar listens for street names, types andpre and post directionals (e.g. North Main St). These four inputs applyto all streets—name, type, prefixing directional and suffixingdirectional. All of these are optional inputs but the grammar isdesigned to always build the name of the street first—e.g. saying simplyNorth would mean North as a street and not a directional. These elementsare used to create the georteseg slot. The system listens for words suchas “near”, “and” and “at” which assists the system to determine if istwo street descriptions were provided. The system also listens forproximity (stored as a geoprx value) (eg: 1 mile, 2 kilometres, 3blocks) and an objprm description.

[0111] 8. In the event of one georteseg description being incomplete,the system looks through the database for the best or exact match. Thismay include transposition of pre and post directionals thereby allowingthe caller to refer to “Hastings West” as “West Hastings”. All matchingstreet segments are then extracted to a candidate list.

[0112] 9. If two or more street segments were provided, the same processoccurs a second time. This matching process extracts only the segmentswithin the previously defined city (by speech or by default preference).

[0113] 10. If the system is given two street names, then the system willask for a radius: example “How far around you would you like to search?”unless this preference is described as a default in the system for therecognized requestor. The system first looks through all of the segmentsof the first street against the segments of the second street lookingfor a point of intersecting longitude and latitudes. Once a commonlongitude and latitude point are determined, the intersection is deemedvalid and all of the segments in the database whose longitude orlatitude for the end point or starting point are within the solicitedproximity of the determined point are extracted to form the candidatelist of street segments. Distances (such as miles, and kilometres) areconverted in latitude and longitude for calculating which segments areappropriate for the candidate list. If the requestor expresses adistance in “blocks”, the appropriate number of segments are counted outfrom the intersection.

[0114] 11. All entities in the database of the specified object typeassociated with any of the candidate segments are placed in an entitycandidate list and are considered Points of Interest.

[0115] Geo spatial positioning is a common process by which a group ofsatellites signal receivers that compute a longitude and latitude asapplied to the Earth's surface. The system according to the inventioncan use a process by which this same and other related information iscomputed by more common information, such as street names, landmarks,and geographic areas (legal names or otherwise).

[0116] The system's smallest unit of information, street segments, aregrouped together in ways which reflect relationships with each other invarious forms. Particulars about each street segment and these groupsallow for the process of geo spatial referencing—the ability to identifya specific location as a longitude or latitude or an area by these groupassociations.

EXAMPLE #2 Use of an Embodiment of the System by an InformationRequestor

[0117] (1) The system answers the phone.

[0118] (2) If the requestor is a registered user and the system was ableto determine this from the caller id, then the requestor's profile isused through the process.

[0119] (3) If the caller id did not reflect a specific user profile, thearea code and telephone number prefix are used to determine the bestguess of the requestor's geographic area

[0120] (4) The system introduces itself with an audio logo and otherspeech.

[0121] (5) If the requestor's profile does not reflect a defaultlocation, the system asks the requestor to say the name of a city.Different versions of the grammar used to recognize places areimplemented depending on the area code. For example, if the area code is“604”. and the caller says “Vancouver”, then “British Columbia” isasserted as the default province by the grammar because it is implied bythe requestor's caller id. If the caller id reflected “206” and therequestor said “Vancouver”, the implied state would be “Washington”.

[0122] System: “Say the name of the city your interested in”.

[0123] The requestor's response is placed in the geoplc slot.

[0124] (6) Depending on the requestor profile if one exists, aparticular “service” may be asserted by the system. In the event of nosuch default service, the system asks: “What would you like to find?”

[0125] The requestor responds stating the kind of entity they would liketo find. For example, the requestor may state “gas stations” or“accommodations” or “nearest gas station” or “nearest accommodations”.The direct object is placed in the obj slot and the descriptor is placedin the objparam slot. The system also listens for a geoplc slot value (aplace name) and will return the value if such a place name is providedby the requester.

[0126] (7) The system then asks the requestor for a street name orintersection: “Say the name of a street or intersection”.

[0127] The system listens for a street or intersection name. Anintersection is simply two street names instead of one. For each streetthe system determines the street segments with the given name and placesthem into separate candidate lists.

[0128] If two street descriptions were provided, the two lists areevaluated to determine where the streets intersect. This is accomplishedby matching segment longitudes and latitudes for the first given streetwith those of the second. If a match is located, the resulting longitudeand latitude is saved. If the streets do not intersect an error messageis given to the requestor and the question repeated.

[0129] If one street description was given, the candidate list of thesegments with that street name is placed into the “target list”.

[0130] (8) If the user provided two streets, the system asks theproximity to search. System: “Within what proximity?” The requestorresponds with a proximity (eg: 2 blocks, 5 miles, 10 kilometers). Thesystem then determines the street segments within the proximity of theintersection longitude and latitude. These segments are saved as the“target list”.

[0131] (9) Having a defined list of target segments (the target list)which is a list of street segments derived from either one or two givenstreet names, the system proceeds to lookup object entities which arecoded as being on the candidate segment list (i.e. the obj slot asapplied to georteseg slots).

[0132] (10) Depending on the object entity (object slot), one of severalactions takes place. For example, if the caller said “nearest” or“nearest” is the default object parameter (objparam) for the givenobject (obj), then the system evaluates the nearest object. If theobjaparam for the object is “cheapest” then the system evaluates thelowest priced object that is coded to one of the candidate segments.

[0133] (11) An advertisement is preferably played to the requesterdepending on caller profile and advertisement bookings.

[0134] (12) The object with the given object parameter coded as beinglocated on one of the segments in the target list is returned to therequestor.

[0135] For example, the system: “The best reported price is 64.9 at Essoon Hastings near Main” or “The closest Starbucks is on Granville near12^(th), or “The closest available accommodations are at Days Inn onHastings near Howe”.

[0136] (13) The system then asks the requestor if the requestor wouldlike to be connected with the object if the object has been flagged asbeing able to receive calls. The system: “Would you like to connect withthem now?” If the caller responds “yes” the call is patched through.

[0137] If the connection cannot be established or when the connectionterminates on the called party side but remains on the requestor side,the system continues.

[0138] (14) The process returns to step 6 until terminated by therequestor.

[0139] Collecting Information

[0140] The system and method can also be used to collect informationfrom callers, as shown in the following example.

EXAMPLE #3 A Caller Providing Information about Gas Prices to the System

[0141] (1) The caller says “gas tip” or another trigger word relevant togas prices to the system.

[0142] (2) The system then asks for the name of an intersection, System:Say the name of an intersection Caller Example: Main and 1st

[0143] (3) For each of the two streets named, the system retrieves thestreet segments from the database. It then looks for a longitude andlatitude point shared in common with both street segment groups. Thiscommon point is called the reference point. All street segments sharingthis point are placed a candidate list.

[0144] For example:

[0145] Assuming that the horizontal group of segments is named “Main”and the vertical group of segments is named “1st”; if the caller said“Main and 1st” or “Main at 1st”, segments 2, 4, 5 and 7 would bereturned because these segments share the common point x3 y3.

[0146] (4) The gas stations which are coded to be positioned on any ofthe candidate segments are then placed into the gas station candidatelist. There may be zero or more candidates (zero being no gas stationreferenced at that location).

[0147] (5) If there is more than one gas station in the gas stationcandidate list, the gas stations brands are given to the caller and thecaller is prompted to repeat the brand back:

[0148] For example:

[0149] System: Which gas station near main and first? Repeat the brandname of the gas station you are reporting a price for: Exxon, B PPetroleum

[0150] Caller Ex.: Exxon

[0151] The system eliminates the non-named brands from the gas stationcandidate list leaving only one.

[0152] (6) With the gas station candidate list now containing one gasstation, the system asks for the fuel type:

[0153] System: Say the type of fuel you are reporting a price for:Regular, Mid Grade, Premium, Propane or Natural Gas

[0154] Caller Ex.: Regular

[0155] (7) The system then requests the price which can be provided viavoice input or by way of touch tone entry.

[0156] System: Say the price. For example sixty nine point five or adollar forty-seven and 7 tenths.

[0157] Caller: Fifty Six point Nine

[0158] (8) If the fuel type is gasoline and not propane or natural gas,and the state allows self-serve, the system asks for the delivery formof the price:

[0159] System: Is this a self-serve or full-serve price. Say “selfserve” or “full serve”.

[0160] System (Alternative)t: Is this a self-serve price? Say yes or no.

[0161] Caller Ex: Self-Serve

[0162] Caller Alternative Ex: Yes

[0163] If there is no candidate gas station listed, and the caller'sprofile indicates that that caller is permitted to create a new gasstation in the system, then the system will ask for the brand:

[0164] System: We don't have a gas station listed in that location. Saythe name of the gas station brand located there: Exxon, B P Petroleum,Unocal, etc.

[0165] Caller: Exxon

[0166] Alternatively, the system may direct the call to an operator ifthe caller's profile indicates that operator assistance is required whenproviding the location of a new gas station. The call is connected to anoperator and the given data provided to the operator's console vianormal screen pop.

[0167] (9) If the caller's profile permits auto-entry of the gas stationand price into the system and a new gas station location is beingprovided, the database is updated with the brand and street segments(all relevant segments as the real segment is not known) and the gasstation is also flagged as being new. The newly created gas station's idis placed into the candidate gas station list.

[0168] (10) The database price table is updated with the provided price,fuel type (regular gas, propane, etc.) and delivery method (self/fullserve).

[0169] (11) The caller is thanked for the tip.

[0170] The system can also be used to allow users to provide their owngroups, for example their frequently travelled routes to and from work.To accomplish this, the user contacts the system (for example, byphone), provides a starting point and end point, and lists the streetstravelled from the starting point to the end point. The system cancreate the group based on the intersections between such streets. Forexample the system will being the group formation by creating a group ofthe first street named. Once a second street is named, the system willtruncate the first street group at the intersection point, and add thenew street segments to the group (also truncated at the intersectionpoint). If an intersection cannot be found (i.e. there is a gap betweensegments), the system may request further information or may completethe group based on the information provided using a routing routine.

[0171] Targeting Information and Advertising

[0172] Geographically targeted information is a process which relatescontent, called information content, with content classes, geographiclocations, scheduling, time and impression counts. The informationcontent may be any form of content, for example, an internet URL, anaudio advertisement, video, a command to a machine, etc. The method andsystem include a method which coordinates the dissemination of multiplegeographically targeted information content in such a fashion as tosatisfy each geographically targeted information instance's attributesin a prioritized fashion.

[0173] The process can be applied to any form of information for whichdissemination should be controlled by one or more of: content class,geographic location, time and impression counts. Uses include, but arenot limited to, providing advertising and promotions, messaging, trafficreporting, and notification services.

[0174] The basic unit of information content, called a beacon,associates the information content with a schedule and a disseminationcount. A schedule identifies the periods of time for which a beacon isactive and therefore, based on the criteria of time, when the beacon isa candidate for the dissemination of it's information content. Thedissemination count identifies the maximum number of disseminations ofthe information content to take place.

[0175] A campaign associates one or more geographic locations and one ormore content classes with one or more beacons. While the geographiclocations and content classes properties could be properties of a beaconinstead of a campaign, abstracting them to a campaign and allowingbeacons to share common content classes and geographic locationsimproves the overall robustness of the system in terms of resources,flexibility, and administration models and provides the functionality tomore directly to support some existing real-world advertising models(i.e. as available on radio). Geographic locations preferably representa group of street segments, which may be defined by the advertiser.Content classes facilitate grouping of related content. Each beacon asapplied to a specific campaign may include a weight relative to otherbeacons also associated with the same campaign. The application ofweight allows beacons to have disparate priority and probability ofdisseminating their information content relative to other beacons in thesame campaign. FIG. 20 displays a graphical representation ofadvertisement specifications.

[0176] An owner represents one or more campaigns. An owner represents alevel of abstraction and control for administration purposes and is nota strict requirement for the selection and dissemination of a beacon'sinformation content.

[0177] Determining beacons for which to disseminate their informationcontent requires the evaluation of available beacons and the selectionof qualified beacons. This process is called the beacon selectionprocess. Beacons are selected based on three main criteria: time,content class, and geographic location, although other parameters may bepresent (typically descriptive terms, such as “cheapest”). Content classis not required for a system where all information is homogenous, thatis, of one content class. Time is not required for a system where allbeacons are persistent and do not contain scheduled times. Theevaluation process yields a qualified set of zero or more beacons calledthe candidate beacons.

[0178] As beacons can represent common geographic locations, contentclasses and times, multiple beacons are likely to form the candidatebeacons set. A process of beacon arbitation is used to select a singlecandidate beacon from the candidate beacons set. Various algorithms forbeacon arbitration processes may be applied. In a preferred embodiment,the beacon arbitration process is called the Highest Priority Index.Once calculated, a candidate beacon with the highest priority index isselected and the Highest Priority Index process calculates and records anew priority index associated with the beacon facilitating the nextiteration of the process. The process returns information identifyingthe beacon to be disseminated and therefore facilitating thedissemination of the beacon's information content. The process may becalled repeatedly to obtain a list of qualified beacons.

[0179] A feature of the system is its ability to target advertising to arequestor based on information provided by the requestor. This featureallows the advertising to be precisely targeted, as the system may knowwhere the requestor is, where they are going, and what they are lookingfor.

[0180] The system allows advertisers to precisely target users of thesystem, by first associating the advertisement with street segments, forexample a twenty four hour restaurant advertisement is associated with aseries of street segments which actually surround a nearby gas station.The advertisement is associated with “gas stations” as the object, notime limitation, and “cheapest” as a further parameter. in anotherexample, a restaurant advertisement is associated with series of streetsegments located around a nearby hotel. The object is “accommodations”,the time is 2:00 p.m. to 8:00 p.m. and the further parameter is “best”.

[0181] The process of playing an advertisement, i.e. a beacon withadvertising content, may be as follows:

[0182] (1) The advertising object specifies a series of one or moreaudio advertisement which will be played to the caller as well as aresponse grammar.

[0183] (2) During the advertisement, the caller is asked to respond witha particular acknowledgment. For example: System: (for a Speed ReadingAdvertisement) Say “YES” if you would like to learn to speed read rightnow. Caller: Yes --Alternate-- System:  (Club/Restaurant Advertisement)Say “YES” if you would like to make a reservation right now. Caller: Yes--Alternate-- System:  (Coupon Advertisement) Say “YES” if you wouldlike to receive our bookmark in your email. Caller: Yes

[0184] (2) If the caller's response is affirmative the appropriatefields are changed and the request satisfied by collecting moreinformation if necessary, and typically by contacting the advertiser toprovide the information.

[0185] The requestor's area of search based on the request may not bethe only location reference used for location based advertising orcontent. The requestor's location of interest (i.e. area of search) maynot be the user's location or represent a location between the requestorand the area of search. Thus, any or all of the user's location ofinterest, actual location, and the area between the two, may be used forproviding targeted location based advertising.

[0186] Advertising (or other beacons) may be “pushed” to a receivingparty or “pulled” by a receiving party. FIGS. 22 and 23 show flow chartsdemonstrating the different processes taken by the system.

[0187] The targeted advertising need not be based solely on streetsegments. The method by which targeted advertising is provided isequally applicable to other location determination technologies such asGPS or triangulation.

[0188] Routing

[0189] The system is also capable of providing directions for aninformation requestor. in a preferred embodiment of the method, thefollowing steps may be taken:

[0190] (a) Step 1 Security check against member tables (memtyp &memtypdat) to determine if this feature is available for the requestor.

[0191] (b) Step 2 Process input parameters provided by requester to getStarting Point (Lng1, Lat1) and Destination (Lng2, Lat2).

[0192] The starting points may be an existing address or an intersectionof two streets, as may the destination.

[0193] a. If a starting address is given, check whether it exists in ourdatabase by calling a subroutine. If it does, go to Step 2-b, otherwisego to Step 2-c.

[0194] b. Get the two nearest intersections of the starting streetsegment. Go to Step 2-e.

[0195] c. If a starting address is not given or not found in ourdatabase, check whether two streets are given for the starting point. Ifthe starting address is found in the database, go to Step 2-e, otherwiseexit function and return an error message.

[0196] d. If two streets are given for the starting point, check whetheran intersection exists between the two streets. If there is anintersection, go to Step 2-e, otherwise exit function and return anerror message.

[0197] e. Repeat the above process to get the similar information of thedestination.

[0198] f. If either the starting point or the destination is determinedby a given address, decide the Starting Intersection and the EndingIntersection based on the information obtained about the starting pointand destination using the following criteria.

[0199] 1. The crossing street has higher class, such as Secondary,Major, or Highway

[0200] 2. The distance between two intersections are the shortest.

[0201] (c) Step 3 Determine the Distance Unit and Set Output Format. Ifnecessary, assign the default values.

[0202] (d) Step 4 Get the Collection-of Segments for the Route Found.

[0203] a. Determine the distance between the starting intersection(Lng1, Lat1) and ending intersection (Lng2, Lat2).

[0204] b. Start from the starting intersection, choose next segmentaccording to the following five Priorities:

[0205] 1. Top Priority—Best Segment: The segment is the sole segmentthat can be chosen or the segment belongs to the same Street as one ofthe two streets which form the ending intersection.

[0206] 2. 2nd Priority—The Shortest Distance: The class of segment isnot “Local” and choosing the segment leads to the shortest distance.

[0207] 3. 3rd Priority—The Same Street: The street of a segment is thesame as that of the previous segment chosen.

[0208] 4. 4th Priority—The second record: The second record will bechosen if the actual distance to the End Intersection caused by choosingit is shorter than that caused by choosing the first record.

[0209] 5. 5th Priority—The shortest Distance

[0210] c. Repeat Step 4-b to obtain all segments towards the endingIntersection, until accessing the ending Intersection.

[0211] d. For each segment returned in Step 4-c, check the segmentagainst the existing collection of Segments chosen, and if it hasalready been in the collection, tag this segment and all segmentsfollowing this segment Useless, remove all of them from the Collection,and find a new desired segment repeat Step 4-b by using the informationof the last segment in the Collection that is not tagged useless.

[0212] (e) Step 5 If There is a Starting Address, Add Half of TheSegment where the Starting Address belongs to the beginning of theCollection of Segments for the Route Found in Step 4

[0213] (f) Step 6 If There is a Destination Address, Add Half of TheSegment where the Destination Address belongs to the End of Collectionof Segments for The Route Found in Step 4

[0214] (g) Step 7 Determine The Actual Number of Blocks in The RouteChosen and Check Whether There Is a Valid Intersection in Every TwoSubsequent Segments Found in Step 4.

[0215] (h) Step 8 Determine The Turning Direction Between Streets in TheRoute Chosen.

[0216] (i) Step 9 Output The Route Chosen as a String in the DesiredFormat

[0217] Targeted Advertising Routing

[0218] The method and system can also provide a requestor a route thattakes them by certain points of interest, thereby providing advertisersthe ability to play an advertisement for a requestor, and then have therequestor routed by the advertiser. As well, parties can pay to haverequestors routed by them (perhaps only if the requestors meet certaincriteria.

[0219] For Example:

[0220] (1) A requestor requests driving directions from an informationsource via a cellular phone. After indicating her departure anddestination points, she's about to be provided with driving directions.Immediately prior to the provision of the driving directions, she'sprovided an advertisement for a McDonald's fast food restaurant whichhas sponsored her request. As she drives to her destination she observesshe passes by a McDonald's restaurant.

[0221] (2) A requestor engages his internet enabled mobile phone tolocate a hotel with vacancies. After his query is processed, he'soffered directions to the inn which he accepts. The directions,comprised of 5 turns, appear as “step by step” screens (cards) on hismobile device. Between steps 2 and 3, Joseph is presented with amarketing message and coupon for a Jazz Club on the street he's about toturn onto.

[0222] The process manifests navigational aids which, such as walking ordriving directions, which direct the user past one or more specificlocations and/or along one or more street blocks. The process mayintegrate “messages” (audio, text, or visual or combination thereof)into the directions. This allows “route-points” to be sold to points ofinterest which become part of route-finding (refer to the above userscenarios). When directions are required, candidate route points areselected and the direction in fact “directs” the user past, along or byone or more “route-points”. Route-points could be store locations orother points of interest where traffic is desired (e.g. pass bybillboards, tour stops, etc.).

[0223] A preferred embodiment of such targeted routing includes thefollowing steps:

[0224] (1) Obtain Routing Points. Routing points are locations which thefinal directions, if followed, cause the requestor to pass by, along orthrough. Different processes can be used to select routing points. Forexample, one process which can be used is the “bounding box” method. Thebounding box method defines a square area by longitude and latitudecomputation where all of the points required in the routing directionsare contained. The bounding box method then determines all of the streetsegments which are either completely or partially within this area.These segments are then passed to other processes as criteria upon whichto evaluate what, if any, route points exist and which ones will beused. The purpose of this step is to obtain a list of routing points.

[0225] (2) Order the Routing Points. If an “order” is to apply to therouting points, for example, when more than one routing points will beused, then such routing points must be ordered.

[0226] (3) Determine Directions The process calls a route-findingprocess such as described above. Route finding processes determine aroute between two or more points and may include provisions for routecharacteristics such as most efficient, simplest, preference for speed,etc. Any route-finding process known in the art is suitable. The processcalls the route-finding process as many times as required to accomplishthe task. For route-finding processes which only provide output for twopoints, multiple calls will be required. For route-finding processeswhich can handle an arbitrary number of points, more route-points can bepassed.

[0227] (4) Using the example route finding method described above, theroute-finding process will be called a number of times in relation tothe number of route-points to be included. In this scenario, the firststep is to supply the point of departure and the first route-point asthe origin and destination. The next step will be to supply the firstroute-point and the next as the origin and destination. This repeatsuntil all route points have been computed at which time the process iscalled a last time supplying the last route-point and desireddestination as the origin and destination points. The resulting outputis a route-plan which passes along, through or by one or more routepoints.

[0228] (5) Result Output. The resulting route-plan is formatted asdesired and, optionally, references or content can be applied to theoutput where appropriate to indicate the route points. For example, whenrendering a map, a route point can be “highlighted” or “marked” andinclude the data to be imposed on the rendering or a reference which canbe used to draw a relationship to the route point in a subsequentprocess.

[0229] Preferably the process couples targeting advertising to therequestor with the results of a route-planning to process to providetargeted information and advertising as applied to route-planning. Thisprocess is “interface independent” meaning that the actual information,promotional or advertising content, “message” may be interpreted by asubsequent process suitable to a particular device or interface. Forexample, the message may contain a reference to a stored audiorecording, a reference to a stored graphic or visual, or a unique couponnumber represented as text.

[0230] This method is carried out using Active GeographicSpecifications, i.e. objects which encapsulate a geographic definition.An Active Geographic Specification may embody any combination ofaddresses, intersection references and street segment (block)references. An Active Geographic Specification encapsulates thisinformation as a arbitrary list of types and data.

[0231] For example, a Geographic Specification may embody an address andthe street segments 2 blocks around the address. Alternatively, it couldspecify a particular route composed of a list of street segments. ActiveGeographic Specifications are used in conjunction with the output from aroute-plan and define the geographic location(s) for which a messageapplies.

[0232] Sponsored Geographic Specifications are identical to ActiveGeographic Specification in terms of construction, but have a differentpurpose. If the method deems a message as being appropriate to apply tothe route-planning results, the geographic information contained in theSponsor Geographic Specification may be used as additional output. Forexample, the Sponsor Geographic Specification could be used to highlighta location on visual navigation aid on route.

[0233] A Schedule Specification is an object which encapsulates aschedule. Schedules reflect dates and times, date and time ranges. Forexample, a Schedule Specification may embody the days of the week Mondaythrough Friday and the times 8 am to noon. alternatively, a ScheduleSpecification may embody a definition specifying the first week of everymonth, 24 hours a day.

[0234] Delivery Specification is an object which encapsulates one ormore Active Geographic Specifications and an one or more associatedSchedule Specifications. The resulting object embodies a geographicspace and time definition through its Geographic and ScheduleSpecifications.

[0235] Content Specifications are objects which encapsulate a contenttype, content location and content or content reference. Content typereflects the type of content as applied to an interface (for example,'text” indicated the content is designed for delivery as a textmessage). Content location indicates the location of the content (forexample, a content location of “url” indicates that the contentparameter is a url specifying the location of the content). For example,a content specification might embody a reference to a record audio asits content and use the keyword “audio” as its content type.Alternatively, a Content Specification could have a text message, “Eatat Joe's” and the content type set to “text”.

[0236] Message Specification is an object which encapsulates a ContentSpecification, Sponsor Geographic Specification and a DeliverySpecification.

[0237] Campaign Specification is an object which encapsulates one ormore Message Specifications. Thus, a Campaign Specification embodies oneor more messages and associated geographically and supporting elements.

[0238] The objects seen in FIG. 20 represent a data structure and datarelationships which provide the requirements to associate content withgeographic location and, optionally, dates and times. The design allowsfor different messages associated with different locations and differentmessage content types. The design also supports the ability to specifyparticular geographic information relative to the message, for example,to store locations representing the sponsor of the message.

[0239] Any suitable route-planning method can be used. The results froma route-planning method must be parsed so that the pared output can beapplied against the Active Geographic Specifications which are activebases on their associated Schedule Specifications. The process forparsing route-planning results varies greatly based on the formatting ofthe route-plan and additional data in the route-plan which can beapplied.

[0240] An overview of a preferred embodiment of the process follows:

[0241] 1. Based on the point of origin and the route-plan's “legs”, theroute-plan's directions are parsed into a representation which includessegments, intersections and addresses. These representations reflect thesame type of content as an Active Geographic Specification but reflectthe route to be taken by the requestor. The resulting list is called the“Route Geographic Specification”.

[0242] 2. For each address, intersection or street segment identified inthe Route Geographic Specification, an evaluation takes place. Eachentry in the Route Geographic Specification is called a Route GeographicSpecification Entry or “entry”. An evaluation of all Active GeographicSpecifications is made. Entries which are also found in ActiveGeographic Specification become a “candidate” and the Active GeographicSpecification's id is retained.

[0243] 3. For each candidate Active Geographic Specification, associatedDelivery Specifications are retrieved allowing the Active GeographicSpecification's Schedule Specification to be evaluated. Based on thecurrent date and time in the Active Geographic Specification and theassociated Schedule Specification, candidate Active GeographicSpecifications are further qualified or rejected.

[0244] 4. The next process is Content Specification qualification whichensures that the content type matches those indicated at the instigationof the process request. For example, content with a content type of“WAP” is not generally usable in an audio delivery. To achieve ContentSpecification qualification, the remaining candidate Active GeographicSpecification's associated parent Delivery Specifications are obtainedand put in a list. For each Delivery Specification, the associatedparent Message Specification is obtained and put in a candidate list.

[0245] For each Message Specification candidate, the associated ContentSpecification is evaluated to ensure a match with the requestingsystem's “supported content types” parameter if one was provided. If onewas not provided, candidates are presumed valid. Candidate ContentSpecifications and associated Message Specifications are retained inseparate lists.

[0246] The resulting Candidate Message Specification list will reflectmessages which apply to various “legs” of the route-plan; i.e. addresses(way points), street segments and intersections.

[0247] 5. The resulting Candidate Message Specification list is thenapplied to another process suitable for message dissemination andinventory management. Such a process may be a simple“least-recently-delivered” process whereby the least-recently deliveredmessage becomes the message to be delivered or may reflect a moreelaborate mechanism whereby weighing and ratios are applied. The resultof this process however, is to isolate a single Message Specificationfrom the candidate list for delivery which completes the overallprocess.

[0248] 6. The candidate Message Specification content information isreturned to the calling system. If the calling system's content requestsit, Sponsor Geographic Specification information may also be supplied.

[0249] The aforementioned discussion details a mechanism and processwhereby information, promotions and advertising (content) can begeographically “associated” with navigational route-planning. The resultis that the route-plan can contain additional information pertinent tothe route. The process supports abstract addresses, intersection andstreet segment information (geographic information), date and time data(schedule information) and content and content descriptions (contentinformation) to maintain associations for this purpose. The process isdevice agnostic, i.e. the content can be applied to any interface ormedium.

[0250] Generally, the process is used to solicit advertisers to sponsorroute-planning services based on geographic proximity. This introduces arevenue stream which can support the costs of providing theroute-planning service for free to the end user.

[0251] The process can be modified to support “Content GeographicSpecifications”. Content Geographic Specifications define an additionalassociation between geographic definitions (such as an address or streetsegment) and the Content Specification. This association allows contentto be matched to addresses, street segments and intersections. Forexample, the a way point in the route-plan may be for a theatre and suchan association would facilitate content being applied based on the factthe way point is a theatre. Another example could identify that thepoint of origin in the route-plan is a hotel thereby allowing arelationship to be evaluated with the content again; for example, atourist attraction message, to be provided.

[0252] The process provides two options. An advertisement can be boundto a route, i.e. provided to the requestor when the route includessegments selected by the advertiser. Alternatively, the route can bebound to the advertiser, i.e. the route will send the requestor by theadvertiser's place of business.

[0253] Sample Uses

[0254] The above described methods and system can be applied to a widevariety of technologies. For example the targeted advertising candeliver commercial grade media scheduling; e.g. multiple advertiserseach running multiple campaigns in geographically. Potentialgeographically target messages include: campaigns for an area, deliveryarea, marketing area, messaging area, notification area, etc. Otherexamples follow:

[0255] Yellow Pages—(An example of locating objects by voice) Arequester places a telephone call which is handed by an interactivevoice response (IVR) system. The system asks for the type of business orthe name of a business the requestor is interested in locating and thegeographic area of interest. The system provides a listing of suchbusiness, after playing an advertisement for the requestor. This examplecan include such uses as classifieds, reservations, shopping, traffic,movie locator, traffic reports, friend finder, CRM, work force, andfield service. A reward system can be implemented using the method andsystem according to the invention.

[0256] Other examples:

EXAMPLE #4

[0257] Mary is in the lobby of her downtown Vancouver, Canada hotel.She's on her way to meet a client at the Queen Elizabeth Theatre butneeds walking directions. Using here internet enabled mobile phone, sheengages a travel site which offers walking directions. After providingher point-of origin and specifying her destination, she's provided withsuitable walking directions. The walking directions carry a message,“After the theatre—La PIazza Dor Italian Coffee and Dessert Bar—Coffeeand Dessert Specials”. Mary not only has her walking directions, she nowhas an establishment to take her client to after the show.

EXAMPLE #5

[0258] Joseph is driving in his car and uses an in-vehicle navigationaid to determine the address and driving directions to a local plantnursery. After his making his request, the in-vehicle navigation aiddisplays a visual map with his route-plan highlighted. The navigationaid shows the destination nursery and 3 blocks away, a home renovationcenter location is also shown.

EXAMPLE #6

[0259] Veronica is a home and desires driving directions to a restaurantshe'll be meeting some friends at. She calls a voice portal and requeststhe driving directions to a given address. She's provided directions andshe hears an ad promoting a club near her chosen establishment.

[0260] The system and method can also be used with Personal InformationManagers (“PIMs”) and Contact Manager Software. PIMs are a type ofsoftware application found on most PDA devices and mobile phones thatallows requesters to enter text for any purpose and retrieve it based onany of the words you typed in. Typical features include a telephonelist, calendar, scheduler, reminder and calculation functions. ContactManager Software is a type of software application that allowsrequesters to store and manage contact information. Contact informationgenerally includes an individual's name, related phone numbers,addresses, dates and organization or business company name.

[0261] Personal Information Managers (PIMs) and Contact Managersgenerally provide similar and overlapping functionality, particularly interms of the storage and retrieval of telephone lists or contactinformation. The terms PIM and Contact Manager are generally usedinterchangeably.

[0262] Herein, the terms “personal information manager”, “PIM” and“contact manger” may be used interchangeably. The term “contact manager”refers to telephone and related information for people and entities suchas businesses, organizations and group.

[0263] PIMs store information in a variety formats and methods. Theinformation store for PIM information is termed the PIM database. PIMsmay provide additional functionality which allows other softwareapplications to read and write information or otherwise manipulate thePIM database. The ability to read and write information to the PIMdatabase, either directly or indirectly (such as through direct computerfile manipulation or without supplied additional functionality) isherein termed as the PIM API.

[0264] A software component, called a PIM Interface implements thefunctions provided by the a PIM API. Various PIM interfaces aredeveloped as required for the various PIMs available. For example, a PIMInterface for Microsoft Exchange Server 2000 provides the functionalityof reading and writing contact information to the Microsoft Exchange2000 Server PIM database. A PIM interface may simply interact with acommon tab-delimited text file to read and write contacts information.

[0265] The method according to the invention provides for interfacingand enhancing PIM information through various devices such as wirelineand wireless phones, internet enabled (WAP) phones, and personalcomputing devices (handheld and otherwise). Examples of enhancing PIMinformation via the method and system described herein include (a)driving directions to contacts by contact reference in the PIM, (b)allowing the input of contact names which do not exist within the PIMdatabase but which are handled via other mechanisms, (c) providingprompting to allow users to engage in transactions relative to acontact, and (d) providing lists of contacts geographically located in auser defined area.

EXAMPLE #7

[0266] Driving Direction by Contact Reference. John calls a phone numberwhich is hosted by an interactive voice response system and whichprovides interaction with his PIM. John states “How do I get to Linda'soffice?”. The system obtains John's present location through any ofvarious location determination technologies and subsequently providesdirections to Acme Co., Linda's place of work. This scenario can beapplied to other interfaces such as WAP.

EXAMPLE #8

[0267] Out-of-Set Contact Handling (Non-Existing Contacts). John calls aphone number which is hosted by an interactive voice response system andwhich provides interaction with his PIM. John states “Home Depot” buthis PIM does not have contact information for Home Depot. Theapplication examines another database of entities which have paid toprovide response to various terms. Home Depot is represented in thedatabase. Contact information for Home Depot and other call handlingoptions are presented. The same process can be applied to otherinterfaces, such as WAP or internet, for contact handling.

EXAMPLE #9

[0268] John calls a phone number which is hosted by an interactive voiceresponse system and which provides interaction with his PIN. At anappropriate point in the application, John is notified that Linda'sbirthday is tomorrow and is asked if he would like to send a flowers orgift basket. John responds affirmatively. The application commences atransaction with a vendor to fulfill the transaction. John is eitherbilled as part of a service package, may be charged to his phone number,or via other means. This scenario can be applied to other interfacessuch as WAP.

EXAMPLE #10

[0269] John calls a phone number which is hosted by an interactive voiceresponse system and which provides interaction with his PIM. He has asksthe system “what customers do I have around me.”. The applicationsolicits John's location through any of the various locationdetermination methods available (GPS, TDOA, GSR, etc.) and returns bystating the name s of companies in John's area. This scenario can beapplied to other interfaces such as WAP.

[0270] The process by which such examples are accomplished includes thesteps of:

[0271] (1) Contact References by Name. A list of all contact names isgenerated by company name and individual name. Permutations andvariations of each entry are included in the list as well. This allowfor partial referencing. For example, Ms. Linda Evans; would have anentry as Linda, Evans, and Ms. Evans. Acme Co. would have an entry forAcme, Acme Co and Acme Company. This Contact Reference by Name listforms the foundation for building voice recognition grammars andoptionally other interfaces if appropriate.

[0272] (2) Grammar Building. The Contact Reference by Name list isfurther transformed into a normal grammar syntax suitable to speechrecognition processes. Verbs for various actions are applied to allowsentence structure if appropriate. For example, “how do I get to Linda'soffice”, “how do I get to Linda's home” where “how do I get”representsverbs and “Linda” represents the contact reference. This grammaraugments direct command grammars which only represents actions such as“driving directions” and to which the contact is subsequently solicited.

[0273] (3) Contact Resolution—through the appropriate interface(s)(voice-xml, WAP) the requestor is asked to remove contact ambiguity ifit exists. For example, “call Linda” could be a valid statement howeverthere could be more than one Linda implied by the reference. Resolutionprocesses may engage the requestor to identify the correct contactalthough preferences settings and other processes can assist in thisprocess.

[0274] (4) Attribute Resolution—through the appropriate interface(s),the requestor is asked to remove ambiguity pertaining to the contact'sattribute should any exist. For example, “how do I get to Linda's” is avalid statement however, if there is a work address and home address forLinda, more than one location is implied. Resolution processes mayengage the requestor to identify the correct attribute althoughpreference settings and other process can assist in this process.

[0275] (5) Action Interpretation—the verb is resolved to an actionhandler and any resolved parameters are provided to the sub-process. Forexample if the verb is “call” then the Call Handler is invoked with anyparameters which could include the phone number. If the verb is“directions” then the Directions Handler is invoked with any resolvedlocations.

[0276] The method and system can also be used to form user createdgroups. For example the system can solicit street names andintersections from the user or poll an automatic location identificationdevice, resolve the location references to segments and store thesegments in a group associated with the user. The segments andsubsequently associated businesses are determined for the purposes ofdelivering geographically targeted messages, advertising, and events.Said stored segments can be applied to specific content classes.

[0277] The system according to the invention may use a process by whicha location reference, obtained by voice, text, GPS, wireless device, orother means including LTD is used to provide geographically consideredinformation to a requestor and optionally facilitate interaction withsuch requestor. The system also can be used so that users in a mobile orimmobile environment can access or be notified of information, such as,but is not limited to, classifieds, business locations, auctions, etc.

[0278] The system can be used to allow an advertiser or individual orbusiness or other entity to select a geographic area within which toassociate the dissemination of information. The geographic area can becomprised of a point with a proximity (such as but not limited to adistance around an intersection) or may be comprised of street segmentsor groups thereof or any combinations of these. The system can also beused to allow mobile business professional or service people or deliverypeople to identify or receive notifications of locations or clientsrequiring attention. The system may also be used to allow an informationrequester to define an arbitrary geographic area with which to associatethe request of information. The geographic area can be comprised of apoint with a proximity (such as but not limited to a distance around anintersection) or a geographic area comprising street segments or groupsthereof or combinations of these.

[0279] In the above examples, if and when the information becomesavailable in the geographic area, the user is presented with theinformation according to the user preferences and the method by whichthe user has accessed the system.

[0280] While the principles of the invention have now been made clear inthe illustrated embodiments, it will be immediately obvious to thoseskilled in the art that many modifications may be made of structure,arrangements, and algorithms used in the practice of the invention, andotherwise, which are particularly adapted for specific environments andoperational requirements, without departing from those principles. Theclaims are therefore intended to cover and embrace such modificationswithin the limits only of the true spirit and scope of the invention.

What is claimed is:
 1. A method of providing information to an information requestor comprising the steps of: (a) the information requester contacting an information source and making a request for information; (b) said information source obtaining a location reference from said requester; (c) said information source providing information to said requestor based on said location reference.
 2. The method of claim 1 wherein said location reference is obtained from said requestor by said requestor providing a voice input.
 3. The method of one of claims 1 or 2 wherein in step (c) an advertisement is provided to said information requester.
 4. The method of one of claims 1, 2 or 3 wherein said requester contacts said information source and is provided said information via phone.
 5. The method of one of claims 1 through 4 wherein said location reference is determined by said requestor identifying a first cross street and a second cross street.
 6. The method of one of claims 1 through 5 wherein said information requested is the location of a type of business.
 7. The method of one of claims 3 through 6 wherein said advertisement is provided based on the location reference of the requester.
 8. The method of one of claims 3 through 6 wherein said advertisement is provided based on the location reference of the information requested.
 9. The method of one of claims 1 through 8 wherein said location reference is determined by identifying a street.
 10. The method of one of claims 1 through 9 wherein said information requested is from a personal information management system.
 11. The method of one of claims 1 through 10 further comprising, before step (a): providing a database of street segments.
 12. The method of claim 11 wherein said street segments are organized into groups.
 13. The method of claim 12 wherein said groups include municipal territories.
 14. The method of one of claims 12 or 13 wherein said groups include streets.
 15. The method of one of claims 12 to 14 wherein said groups include segments grouped by said requestor.
 16. The method of one of claims 12 through 15 wherein said groups include segments grouped by an advertiser.
 17. The method of claim 3 wherein said advertisement is provided to said requestor is further based on time and information requested.
 18. The method of claim 3 wherein said information requested and information provided is a route.
 19. The method of claim 18 wherein said route is selected based on the location of an advertiser.
 20. A system for providing information to an information requestor comprising: (a) an information source comprising (i) means for receiving an information request; (ii) means for obtaining a location reference from said requester; (iii) and means for providing information to said requestor based on said location reference.
 21. The system of claim 20 wherein said means for obtaining a location reference from said requestor comprises: (a) means for obtaining a first cross street and a second cross street from said requestor; (b) means for determining a location reference from said cross streets.
 22. The system of claim 21 further comprising means for providing an advertisement to said requestor based on said location reference.
 23. The method of claim 1 wherein said location reference is determined using voice information provided by said requestor.
 24. A method of obtaining information from a user, comprising the steps of: (a) said user establishing voice communication with a database; (b) said user associating information with a location reference using said voice communication; (c) said database storing said information in association with said location reference.
 25. A method of accessing business information from a personal information manager, comprising the steps of: (a) a user establishing a voice communications link with said personal information manager; (b) said user accessing a database associated with said personal information manager using natural language.
 26. A method of routing a requestor by a sponsor comprising the steps of: (a) said requester contacting a database to obtain a route; (b) said database selecting a route that passes by or through an establishment selected by said sponsor; (c) providing said route to said requestor.
 27. The method of claim 26 wherein before step (c), said database provides an advertisement to said requestor.
 28. A method of providing an advertisement to an information requestor comprising the steps of: (a) obtaining a location reference from said information requestor; (b) selecting an advertisement for said information requestor based on said location reference; (c) providing said advertisement to said information requester.
 29. The method of claim 28 wherein said advertisement is also selected based on said information requested.
 30. The method of claim 28 wherein a second location reference is obtained based on said information requested and said advertisement is also selected based on a route from said first location reference to said second location reference. 